package JVM.第02篇_类的加载篇;

/**
 * ClassName: A5_类的加载案例
 * Package: JVM.第二篇_类的加载篇
 * Description:
 *
 * @Author 张蛟龙
 * @Create 2023/12/3 18:33
 * @Version 1.0
 */
public class A5_类的加载案例 {
    public static int k = 0;
    public static A5_类的加载案例 t1 = new A5_类的加载案例("t1");
    public static A5_类的加载案例 t2 = new A5_类的加载案例("t2");
    public static int i = print("i");
    public static int n = 99;

    static {
        print("静态块");
    }
    public int j = print("j");

    {
        print("构造块");
    }

    public A5_类的加载案例(String str){
        System.out.println((++k) + ":" + str + " i=" + i + " n=" + n);
        ++n;++i;
    }
    public static int print(String str){
        System.out.println((++k) + ":" + str + " i=" + i + " n=" + n);
        ++n;
        return ++i;
    }
    public static void main(String[] args) {
        /**
         * 实际输出
         * 1:j i=0 n=0
         * 2:构造块 i=1 n=1
         * 3:t1 i=2 n=2
         * 4:j i=3 n=3
         * 5:构造块 i=4 n=4
         * 6:t2 i=5 n=5
         * 7:i i=6 n=6
         * 8:静态块 i=7 n=99
         */
    }
}
